This invention relates in general to the testing and analysis of communication networks and more particularly, it is directed to providing a system capable of accurately simulating network packet delivery delay and loss dynamics.
The Internet is a worldwide network of interconnected computers allowing users to transmit, access and obtain files from other computers and users on the network. In recent years, the Internet is becoming used more and more for real-time interactive applications such as Internet telephony, interactive gaming and videoconferencing to conduct meetings over the network without having to travel to the meeting location or incur long distance communication charges.
The performance of these network applications, however, has generally disappointed users due to the vagaries of the performance and reliability of interactive communication over the Internet. The Internet was not originally designed for interactive communication, but rather, the bulk transport of data using non-interactive protocols, such as sending electronic mail (xe2x80x9cE-mailxe2x80x9d), File Transfer Protocol (xe2x80x9cFTPxe2x80x9d), and network news (xe2x80x9cUSENETxe2x80x9d). Regardless, a number of real-time protocols have been designed and marketed, including RealAudio by RealNetworks, NetMeeting by Microsoft, and many others.
Performance of anetwork application software is based on a quality of service (QoS) that depends on network packet delivery delay and loss dynamics. Internet dynamics, however, can be extremely variable. Packet delay and loss characteristics between two hosts may remain stationary for an hour or more or they may change dramatically second-by-second. Different host pairs of devices communicating over the same network may experience different dynamics due to available network bandwidth and background traffic patterns. This temporal and spatial heterogeneity of the network performance makes it difficult to directly compare two protocols or two different versions of the same protocol in a controlled manner on the network.
While network application designers can use a number of protocol techniques to mask both network packet delay and loss, it is difficult to directly test the effectiveness of these techniques in a controlled environment. Attempts to mathematically model network packet delivery delay and loss characteristics have generally proven inaccurate and unreliable. Because of these difficulties, protocols are either not tested at all or tested only in a naive fashion. For example, an interactive network application such as a Internet Telephony scheme might be tested by placing the client/server package at various endpoints throughout the Internet, transmitting calls between pairs of these points for some period of time (say, one month) and then analyzing the results. To determine the performance tradeoffs between various parameters, some of these endpoints may run slightly different versions of the protocol package. Such testing, however, is subject to the different network packet delivery dynamics that may vary significantly over time and requires long testing periods. There is little control over the differing network conditions and thus meaningful comparisons between different protocols are difficult to draw.
It would be desirable to provide a system capable of artificially creating stochastically accurate packet delay and loss to simulate actual network conditions.
In accordance with an illustrative embodiment of the present invention, problems associated with designing, developing and testing network applications software are addressed. According to an aspect of the illustrative embodiment, the network simulator system simulates the packet delay and loss characteristics of a network and allows the testing of interactive applications on the network. The illustrative system provides high accuracy in simulating network dynamics enabling developers of network applications software to design, develop and rigorously test applications in a controlled and reproducible environment that accurately reflects network packet delivery delay and loss dynamics between devices on the network. Providing controlled network dynamic conditions that accurately reflect actual network conditions allow application developers to draw meaningful performance tests of interactive network applications such as Internet telephony, interactive gaming, and videoconferencing.
According to an aspect of the invention, a network simulator is provided to test interactive applications running on host devices communicating over a network. It should be understood that non-interactive applications can also be tested using the network simulator. The network simulator simulates the delay and loss conditions of the actual network using a trace-driven simulation based on measurements of network packet delivery dynamics. In an illustrative embodiment, the network router includes a device driver in the form of a packet forwarding software routine that delivers packets according to a trace profile.
According to another aspect of the invention, a network measurement system measures packet delay and loss through the network to generate trace profiles that accurately reflect the network packet delivery and delay dynamics. The network measurement system includes a client and a server located at endpoints or host devices on the network. The client sends packets across the network to the server, which in turn echoes the packet back to the client. By monitoring the departure and arrival time of the packets, the network measurement system can produce trace files that accurately portray network packet delivery performance between the endpoints. Monitoring the sequence number of the transmitted and received packets allows packets delivered out of the order that they were originally transmitted to be determined, as well as allowing dropped or lost packets to be discovered. To represent a lost packet, the delay time parameter is set to zero.
In this manner, the network measurement system creates trace profiles reflecting the actual network dynamics.
According to another aspect of the invention, the trace files produced by the network measurement system can by used by the network simulator to reproduce actual network delay and loss characteristics.
According to yet another aspect of the invention, a preferred method of measuring network delay and loss characteristics is described. The disclosed method includes the steps of transmitting a sequence of packets from a client to a server communicating over the network, receiving the packets transmitted over the network, echoing the packet back over the network to the client; and logging the delivery of the packet in a trace file.
According to another aspect of the invention, a preferred method for simulating packet delivery dynamics of a network includes the steps of matching a trace profile corresponding to a pair of host devices at endpoints of the network and delaying or dropping the transmission of the packet according to the trace profile.
Developers of interactive as well as non-interactive applications such as Internet telephony, videoconferencing and interactive gaming applications communicating over a packet-based network can design, develop and rigorously test their systems in a controlled environment. The control and reproducibility of the network environment allows network applications to be directly tested and compared to gauge the effects of changes in protocol and maximize the efficiency of the application.